<?php
 Session_Start () ;
 Include ("../../include/garennes.cfg") ;
 Include ("../../include/init.php") ;
 Include ("../include/config.inc") ;
 verif_droits ($droit_courant, $_SESSION ["code"]) ;
 
 $millesime = millesime (0) ;
 
 Include ("../../include/liste_tables.inc") ;
 
 /**
 * Fonction qui test si la presence dans la base de donnees d'une table de nom $nom
 * @param string $nom Nom de la table
 * @param mixed $id_sql Identifiant de connexion SQL
 * @return int 0=Pas de droits, 1=Droit d'ecriture
 */
 /*
 Function test_presence_table ($nom, $id_sql)
  {
   $ok = 0 ;
   //echo $nom."?->SHOW TABLES->" ;
   $res = SQL_commande ("SHOW TABLES", $id_sql) ;
   If (SQL_nbr_lignes ($res) > 0)
    {
     For ($i = 0 ; $i < SQL_nbr_lignes ($res) ; $i++)
      {
       $r = SQL_ligne_suivante ($res) ;
       If ($r [0] == $nom) { $ok = 1 ; }
      }
    }
   //echo $ok."<br>" ;
   Return $ok  ;
  }
 */
 /**
 * Fonction qui test si le champ $nom_champ est present dans la table $nom_table de la base de donnees
 * @param string $nom_table Nom de la table
 * @param string $nom_champ Nom du champ de cette table
 * @param mixed $id_sql Identifiant de connexion SQL
 * @return int 0=Pas de droits, 1=Droit d'ecriture
 */
 /*
 Function test_presence_champ ($nom_table, $nom_champ, $id_sql)
  {
   $ok = 0 ;
   //echo "SELECT ".$nom_champ." FROM ".$nom_table." LIMIT 1->" ;
   $res = SQL_commande ("SELECT ".$nom_champ." FROM ".$nom_table." LIMIT 1", $id_sql) ;
   If ($res) { $ok = 1 ; }
   //echo $ok."<br>" ;
   Return $ok  ;
  }
 */
 /**
 * Fonction qui test si le champ $nom_champ de la table $nom_table contient $valeur
 * @param string $nom_table Nom de la table
 * @param string $nom_champ Nom du champ de cette table
 * @param string $condition Condition d'obtention de la valeur cherchee
 * @param string $valeur Valeur a comparer
 * @param mixed $id_sql Identifiant de connexion SQL
 * @return int 0=Pas de droits, 1=Droit d'ecriture
 */
 /*
 Function test_presence_contenu ($nom_table, $nom_champ, $condition , $valeur, $id_sql)
  {
   $ok = 0 ;
   //echo "SELECT ".$nom_champ." FROM ".$nom_table." WHERE ".$condition." LIMIT 1->" ;
   $res = SQL_commande ("SELECT ".$nom_champ." FROM ".$nom_table." WHERE ".$condition." LIMIT 1", $id_sql) ;
   If (SQL_nbr_lignes ($res) == 1)
    {
     $r = SQL_ligne_suivante ($res) ;
     If ($r [0] == $valeur) { $ok = 1 ; }
    }
   //echo $ok."<br>" ;
   Return $ok  ;
  }
 */
 /**
 * Fonction de verification de version de Garennes
 * @param mixed $id_sql Identifiant de connexion SQL
 * @return array [0]=Nom de la version,[1]=Numero de la version
 */
 Function verif_version ($id_sql)
  {
   Global $test ;
   $i = 1 ;
   $ok = 0 ;
   $num_version = 0 ;
   $version = 0 ;
   //echo "nbr tests : ".$test [0][0]."<br>" ;
   While (($ok == 0) And ($i <= $test [0][0]))
    {
     If ((Is_Numeric ($test [$i][1])) Or ($test [$i][1] == "C") Or ($test [$i][1] == "F"))
      {
       If ($test [$i][1] == "C")
        {
         If (test_presence_contenu ($test [$i][2], $test [$i][3], $test [$i][4], $test [$i][5], $id_sql) == 1) { $version = $test [$i+1][0] ; $num_version = $i+1 ; }
	 Else { $ok = 1 ; }
        }
       ElseIf ($test [$i][1] == "F")
        {
	 $nbr = 0 ;
         For ($j = 1 ; $j <= $test [$i][2] ; $j++)
          {
           If (File_Exists ($test [$i][2+$j])) { $nbr++ ; }
          }
	 If ($nbr == $test [$i][2]) { $version = $test [$i+1][0] ; $num_version = $i+1 ; } Else { $ok = 1 ; }
        }
       Else
        {
	 $nbr = 0 ;
         For ($j = 1 ; $j <= Abs ($test [$i][1]) ; $j++)
          {
           //If (test_presence_table ($test [$i][$j+1], $id_sql) == 1) { $version++ ; }
           If ($test [$i][1] > 0)
            {
             If (test_presence_table ($test [$i][$j+1], $id_sql) == 1) { $nbr++ ; }
            }
           ElseIf ($test [$i][1] < 0)
            {
             If (test_presence_champ ($test [$i][$j*3-1], $test [$i][$j*3], $id_sql) == 1) { $nbr++ ; }
            }
          }
         If ($nbr == Abs ($test [$i][1])) { $version = $test [$i+1][0] ; $num_version = $i+1 ; } Else { $ok = 1 ; }
        }
      }
     //echo $i."->".$ok."->".$version."->".$num_version."<br>" ;
     $i++ ;
    }
   $t [0] = $version ;
   $t [1] = $num_version ;
   Return $t ;
  }
 
 /**
 * Affichage de la structure d'une classe
 */
 Function affichage_structure ($id_classe)
  {
   Global $id_sql, $millesime, $l ;
   $nbr_colonnes = 6 ;
   $classes = SQL_commande ("SELECT * FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ;
   $nbr_classes = SQL_nbr_lignes ($classes) ;
   If ($nbr_classes > 0)
    {
     $classe = SQL_tableau_associatif ($classes, "") ;
     Echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border-collapse:collapse\">" ;
     Echo "<tr bgcolor=\"".$l ["couleur_fond"]."\"><td colspan=\"".($nbr_colonnes-1)."\">(".$id_classe.")<b>".$classe ["nom"]."</b>&nbsp;(".$classe ["nom_bref"].")</td></tr>" ;
     // Determine le nombre et le nom des groupements de disciplines
     $groupe_disc = groupement_disciplines ($id_classe, $millesime) ;
     // Recherche des services profs
     $structure = structure_pedagogique ($id_classe, -1, $millesime) ;
     $nbr_disc = SQL_nbr_lignes ($structure) ;
     If ($nbr_disc > 0)
      {
       For ($i2 = 1 ; $i2 <= $nbr_disc ; $i2++)
        {
         $disc = SQL_tableau_associatif ($structure, "") ;
         $plus = "" ;
         // Sous-discipline
         $tempo = SQL_commande ("SELECT nom FROM sous_disciplines WHERE id_sous_discipline='".$disc ["sous_discipline"]."' LIMIT 1", $id_sql) ;
         If (SQL_nbr_lignes ($tempo) == 1) { $lgn = SQL_ligne_suivante ($tempo) ; $plus .= "(".$lgn [0].")" ; }
         // Optionnelle
         If ($disc ["optionnelle"] == 1) { $plus .= "&nbsp;-&nbsp;Optionnelle" ; }
         // Groupe
         If ($disc ["groupe_classe"] > 0)
          {
           If ($disc ["groupe"] == 1)
            {
   	     $tempo = SQL_commande ("SELECT code_groupe FROM groupes_classe WHERE id_groupe_classe='".$disc ["groupe_classe"]."' LIMIT 1", $id_sql) ;
  	     If (SQL_nbr_lignes ($tempo) == 1) { $lgn = SQL_ligne_suivante ($tempo) ; $plus .= "&nbsp;-&nbsp;Grp&nbsp;:&nbsp;".$lgn [0] ; }
            }
           Else { $plus .= "&nbsp;-&nbsp;Grp&nbsp;:&nbsp;<font color=\"#ff0000\">Incoh&eacute;rent&nbsp;(groupe&nbsp;en&nbsp;trop)</font>" ;}
          }
         ElseIf ($disc ["groupe"] != 0) { $plus .= "&nbsp;-&nbsp;Grp&nbsp;:&nbsp;<font color=\"#ff0000\">Incoh&eacute;rent&nbsp;(groupe&nbsp;manquant)</font>" ; }
         // Coefficient
         $plus .= "&nbsp;-&nbsp;Coefficient&nbsp;:&nbsp;".Str_Replace (".",",",$disc ["coefficient"]) ;
      
         Echo "<tr><td width=\"10\"><img src=\"../images/" ; If ($i2 < $nbr_disc) { Echo "sep" ; } Else { Echo "fin" ; } Echo "_rep.png\" border=\"0\"></td>" ;
         Echo "<td colspan=\"".($nbr_colonnes-2)."\" bgcolor=\"".$l ["lien"]."\">(".$disc ["id_service_prof"].")<b>".$disc ["nom_court"].$plus."</b>&nbsp;(".$disc ["code"].")</td></tr>" ;
           
         // Recherche des periodes
         $num_periode = periode_actuelle ($id_classe) ;
         For ($i3 = 1 ; $i3 <= $num_periode ; $i3++)
          {
           // Recherche des controles
           $controles = SQL_commande ("SELECT * FROM controles WHERE service_prof='".$disc ["id_service_prof"]."' AND millesime='".$millesime."' AND periode='".$i3."' ORDER BY enregistrement", $id_sql) ;
           $nbr_controles = SQL_nbr_lignes ($controles) ;
           If ($nbr_controles > 0)
            {
  	     Echo "<tr><td width=\"10\">" ; If ($i2 < $nbr_disc) { Echo "<img src=\"../images/sep.png\" border=\"0\">" ; } Echo "</td>" ;
             Echo "<td width=\"10\"><img src=\"../images/" ; If ($i3 < $num_periode) { Echo "sep" ; } Else { Echo "fin" ; } Echo "_rep.png\" border=\"0\"></td>" ;
             Echo "<td colspan=\"".($nbr_colonnes-3)."\" bgcolor=\"".$l ["nom"]."\"><b>P&eacute;riode&nbsp;".$i3."</b></td></tr>" ;
             For ($i4 = 1 ; $i4 <= $nbr_controles ; $i4++)
              {
               $controle = SQL_tableau_associatif ($controles, "") ;
	       Echo "<tr><td width=\"10\">" ; If ($i2 < $nbr_disc) { Echo "<img src=\"../images/sep.png\" border=\"0\">" ; } Echo "</td>" ;
	       Echo "<td width=\"10\">" ; If ($i3 < $num_periode) { Echo "<img src=\"../images/sep.png\" border=\"0\">" ; } Echo "</td>" ;
	       Echo "<td width=\"10\"><img src=\"../images/" ; If ($i4 < $nbr_controles) { Echo "sep" ; } Else { Echo "fin" ; } Echo "_rep.png\" border=\"0\"></td>" ;
	       $plus = "" ;
	       If ($controle ["description"] != "") { $plus .= $controle ["description"] ; } Else { $plus .= "<i>Pas&nbsp;de&nbsp;description</i>" ; }
	       $r = "E&nbsp;:&nbsp;".$controle ["enregistrement"] ;
	       If ($controle ["date_maj"] != "0000-00-00 00:00:00") { $r .= "&nbsp;-&nbsp;M&nbsp;:&nbsp;".$controle ["date_maj"] ; }
	     
               Echo "<td colspan=\"".($nbr_colonnes-4)."\" bgcolor=\"".$l ["target"]."\">(".$controle ["id_controle"].")<b>".$plus."</b>&nbsp;(Coeff.&nbsp;:&nbsp;".Str_Replace (".",",",$controle ["coefficient"]).")&nbsp;-&nbsp;".$r."</td></tr>" ;
               // Recherche des notes
	       $notes = SQL_commande ("SELECT COUNT(id_note) FROM notes WHERE controle='".$controle ["id_controle"]."'", $id_sql) ;
	       $nbr_notes = SQL_ligne_suivante ($notes) ;
	       // Appel carnet de notes
               $carnet = carnet_de_notes ($id_classe,$disc ["id_discipline"],$disc ["id_service_prof"],$periode,$millesime) ;
	       // Nombre d'eleves du service prof
	       $nombre_eleves_groupe = caracteristiques_eleves_par_service_classe ($disc ["id_service_prof"]) ;
	       // Nombre d'elevesde la classe
	       $effectifs = effectif ($id_classe) ;
	      
	       Echo "<tr><td width=\"10\">" ; If ($i2 < $nbr_disc) { Echo "<img src=\"../images/sep.png\" border=\"0\">" ; } Echo "</td>" ;
	       Echo "<td width=\"10\">" ; If ($i3 < $num_periode) { Echo "<img src=\"../images/sep.png\" border=\"0\">" ; } Echo "</td>" ;
	       Echo "<td width=\"10\">" ; If ($i4 < $nbr_controles) { Echo "<img src=\"../images/sep.png\" border=\"0\">" ; } Echo "</td>" ;
	       Echo "<td width=\"10\"><img src=\"../images/fin_rep.png\" border=\"0\"></td>" ;
	       Echo "<td>" ; If ($nombre_eleves_groupe [0][0] != $nbr_notes [0]) { Echo "<font color=\"#ff0000\"><b>" ; }
	       Echo "Effectif&nbsp;:&nbsp;".$carnet [0][0][1]."&nbsp;-&nbsp;Nbr&nbsp;notes&nbsp;:&nbsp;".$nbr_notes [0] ;
	       If ($nombre_eleves_groupe [0][0] != $nbr_notes [0]) { Echo "</b></font>" ; }
	       Echo "</td></tr>" ;
	      }
  	    }
           Else
            {
	     Echo "<tr><td>" ; If ($i2 < $nbr_disc) { Echo "<img src=\"../images/sep.png\" border=\"0\">" ; } Echo "</td>" ;
             Echo "<td><img src=\"../images/" ; If ($i3 < $num_periode) { Echo "sep" ; } Else { Echo "fin" ; } Echo "_rep.png\" border=\"0\"></td>" ;
             Echo "<td colspan=\"".($nbr_colonnes-3)."\" bgcolor=\"".$l ["nom"]."\"><b>P&eacute;riode&nbsp;".$i3."</b>&nbsp;:&nbsp;<i>Pas&nbsp;de&nbsp;contr&ocirc;le</i></td></tr>" ;
            }
          }
        }
      }
     Else
      {
       Echo "<tr><td><img src=\"../images/" ; If ($i2 < $nbr_disc) { Echo "sep" ; } Else { Echo "fin" ; } Echo "_rep.png\" border=\"0\"></td>" ;
       Echo "<td colspan=\"".($nbr_colonnes-2)."\">Aucune&nbsp;discipline&nbsp;pour&nbsp;cette&nbsp;classe.</td></tr>" ;
      }
     Echo "</table>" ;
    }
  }
 
 $resultats = SQL_commande ("SELECT * FROM menus WHERE numero='".$droit_courant."' AND ordre='0' LIMIT 1", $id_sql) ;
 $l = SQL_tableau_associatif ($resultats, "") ; 
 Echo "<html><head>" ;
 entete_html ("Garennes", "travail", 1) ;
 Echo styles ("none", "none", "none", $l ["lien"], "none") ;
 Echo " </head>" ;
 
 Echo "<body background=\"../images/fond.png\" text=\"#000000\" OnContextMenu=\"return false\">" ;
 Echo "<center><font color=\"#0000FF\">Affichage&nbsp;de&nbsp;la&nbsp;structure</font></center><br>" ;
 // Version de la base de données
 $v = verif_version ($id_sql) ;
 $version = $v [0] ;
 $num_version = $v [1] ;
 Echo "<center>" ;
 If ($version != $version_garennes) { Echo "<font color=\"#ff0000\">" ; }
 Echo "Base&nbsp;de&nbsp;donn&eacute;es&nbsp;Version&nbsp;".$version ;
 If ($version != $version_garennes) { Echo "&nbsp;-&nbsp;Version&nbsp;actuelle&nbsp;logiciel&nbsp;:&nbsp;".$version_garennes."</font>" ; }
 // Recherche des classes
 $classes = SQL_commande ("SELECT * FROM classes WHERE millesime='".$millesime."' ORDER BY nom_bref,nom", $id_sql) ;
 $nbr_classes = SQL_nbr_lignes ($classes) ;
 If ($nbr_classes > 0)
  {
   Echo "<br><form action=\"aff_structure.php\" method=\"post\">" ;
   Echo "<select name=\"id_classe\">" ;
   For ($i1 = 1 ; $i1 <= $nbr_classes ; $i1++)
    {
     $classe = SQL_tableau_associatif ($classes, "") ;
     Echo "<option value=\"".$classe ["id_classe"]."\">(".$classe ["nom_bref"].") ".$classe ["nom"]."</option>" ;
    }
   Echo "</select>" ;
   Echo "<input type=\"submit\" name=\"submit\" value=\"valider\">" ;
   Echo "</form>" ;
  }
 Echo "</center>" ;
 $id_classe = var_courante ("id_classe", 0, Null) ;
 If (IsSet ($id_classe)) { affichage_structure ($id_classe) ; }
 Echo "</body></html>" ;
?>